package org.dwpd.mapper.blog;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.dwpd.domain.blog.Blog;
import org.dwpd.domain.blog.BlogComment;
import org.dwpd.domain.blog.BlogCommentDTO;
import org.dwpd.domain.blog.BlogInfo;

import java.util.List;

/**
 * Package:org.dwpd.mapper
 *
 * @ClassName:BlogMapper
 * @Create:2024/8/18 19:55
 **/
@Mapper
public interface BlogMapper extends BaseMapper<BlogCommentDTO> {
    //新增博客
     Integer saveBlog(@Param("blog") Blog blog);
    //查询博客详情
     BlogInfo selectBlogInfo(@Param("id") Integer id);
    //添加评论
     Integer comment(@Param("blogComment") BlogComment comment);
    //查询博主
     Integer selectBlogHostId(@Param("blogId") Integer blogId);
    //查询某篇博客的全部评论
    List<BlogCommentDTO> selectBlogCommentsById(@Param("id") Integer id);
    //删除博客
    Integer deleteBlogById(@Param("id") Integer id);
    //删除博客所有评论
    Integer deleteCommentByBlogId(@Param("id") Integer id);

    //查找评论信息
    BlogComment selectBlogCommentById(@Param("id") Integer id);

    //删除评论
    Integer deleteBlogCommentById(@Param("id") Integer id);

    //点赞+1
    Integer addLiked(@Param("id") Integer id);
    //点踩-1
    Integer subDisliked(@Param("id") Integer id);
    //点赞-1
    Integer subLiked(@Param("id") Integer id);

    //点踩+1
    Integer addDisliked(@Param("id") Integer id);
    //获取博客列表，每次6条
    List<BlogInfo> selectBlogList(@Param("index") Integer index);

    // 获取指定用户的博客列表
    List<BlogInfo> selectBlogListByUserId(Integer userId);

    /**
     * 分页查询博客评论
     * @param id
     */
    List<BlogCommentDTO> selectBlogCommentPage(@Param("id") Integer id);
}
